The present invention relates generally to data communication methods and systems which, via a communication network, transmit a plurality of data, such as digital audio data, arranged in a time series of a predetermined period. More particularly, the present invention relates to a data communication method and system in which data are arranged at a transmitting end in such a format that allows a receiving end to accurately reproduce a time-positional relationship between the individual data.
The present invention also relates to data transmitter/receiver devices and data communication systems which communicate time-stamped data via a communication network.
The present invention further relates to data communication systems which receive time-stamped data from a segment on a communication network and then transfer the received data to another segment on the communication network.
Furthermore, the present invention relates to methods of and devices for synchronizing network data.
Data communication systems using a communication network can be classified roughly into synchronous and asynchronous types. The synchronous-type data communication system allows the transmitting end and receiving end to operate synchronously with each other and hence is well suitable for use in an audio data transmission that requires an accurate reproduction, at the receiving end, of time positions of received data. However, the conventionally-known synchronous-type data communication system only has a very limited use because it needs particular arrangements to permit synchronization between the two ends, such as provision of a separate synchronizing signal line, and also has to statically maintain a communication band due to the synchronization. This would result in the communication band unnecessarily remaining reserved even when a synchronized communication is not required at all, and therefore a significant problem would be encountered that the no other information can be transmitted through the communication band.
In contrast, the asynchronous-type data communication system can avoid the above-mentioned problem encountered by the synchronous-type data transmission by dynamically reserving a necessary communication band, but would present another problem of reduced communication efficiency unless communication overheads are reduced by organizing together some pieces of information relatively densely in each asynchronous packet to be issued. Such a packet with the densely organized information would, however, often lose information indicative of original time positions of the individual data. To avoid this problem, it has been proposed, in the packet-based data transmission, to transmit data along with additional information indicative of time positions of the data; namely, the data and time informationxe2x80x94commonly called xe2x80x9ctime stampxe2x80x9dxe2x80x94indicative of respective time positions of the individual data are included together in a packet to be sent from the transmitting end.
However, the proposed approach of attaching the time information to each individual data would lead to very poor efficiency because of a significant increase in the total data quantity.
As another communication scheme for communicating data via a communication network, there has been known an xe2x80x9cisochronousxe2x80x9d data communication system, which can be referred to as a compromise between the above-mentioned synchronous-type data communication system characterized by successive transmission of same-period signals between the transmitting and receiving ends and the asynchronous-type data communication system characterized by intermittent communication of predetermined information units. This isochronous data communication system permits data communication with increased real-time responsiveness where possible time delays are well compensated for by securing a necessary frequency band in advance.
The following paragraphs describe in more detail the isochronous data communication system with reference to FIG. 25. This figure shows exemplary arrangement of packets on a system bus called xe2x80x9cIEEE1394 high-speed serial busxe2x80x9d; specifically, three different kinds of packets, i.e., a cycle start packet 101, isochronous packet 102 and asynchronous packet 103, are provided on a communication network. Each dotted line in FIG. 5 denotes a first timing signal (cycle synch) indicating reference timing in the system, which has a period of 125 xcexcsec. (8 KHz).
The cycle start packet 101 is sent from one of a plurality of nodes connected to the bus which is called a cycle master node, and a new data transmission cycle is initiated with the cycle start packet 101. The has a precise clock pulse source that generates the first timing signal. The cycle start packet 101 is normally transmitted at time intervals corresponding to generation timing of the first timing signal; however, when another packet is being transmitted, transmission of the cycle start packet 101 is waited or delayed until transmission of the other packet has been completed. Reference numeral 104 denotes a delay time with which transmission of the cycle start packet 101 is delayed (start delay time), and this start delay time is included in the cycle start packet 101 in coded form and sent to each of the nodes. It is guaranteed that each packet sent from the node at a given clock period is received by another node within the same clock period.
Each of the nodes is provided with a 32-bit cycle timer register. The cycle timer register uses its lower 12 bits to count 24.576 MHz clock pulse signals (with a period of 40.7 nsec.), which are generated as system""s reference clock pulses, modulo 3,072. The cycle timer register uses other 13 bits, higher in position than the lower 12 bits, to count the above-mentioned 8kHz reference cycles, and also uses its uppermost seven bits to count seconds. Using the cycle start packet 101, the above-mentioned cycle master allows stored contents of its own register to be copied into the cycle timer registers of all the nodes, and also allows all the nodes to be synchronized with each other to within a given phase difference. Thus, in the communication network, a common time standard is provided.
The isochronous packet 102 is a data channel used to transfer data requiring precise timing reference, such as digital sound, video and performance data, and it is guaranteed that each of the isochronous packets 102 is transmitted within a predetermined transmission cycle associated therewith; for example, it is guaranteed that each of the isochronous packets 102 is transmitted, within the associated transmission cycle, to up to 63 channels for a maximum time period of 100 xcexcsec.
Further, the asynchronous packet 103 is a packet which is transmitted asynchronously when there is an empty time in the associated transmission cycle after completion of the transmission of the above-mentioned isochronous packet 102. It is assumed here that the asynchronous packet has a maximum length of 75 xcexcsec. The asynchronous packet continues to be transferred until all the data of the packet have been completely transferred, so that it is likely that the transfer of this packet will continue beyond the period of the cycle timer.
In order to guarantee reproducibility of data on the time axis in transmitting time-serial data, such as sound, video or performance data using any of various networks, the data are transmitted along with a time stamp indicative of a particular time point when the data are to be reproduced, if the transmission path is not capable of a completely synchronous communication. In this case, the receiving end refers to the time stamp and initiates the reproduction of the data upon arrival at the time point indicated by the time stamp.
Each time stamp used on such a communication network must be interpreted in one meaning. Namely, the time stamp requires a cyclic period greater than a time length that is considered to be appropriate to some extent and therefore requires a great amount of information. Where information is in digital representation, a large amount of information, i.e., a great number of bits, would be required to increase the resolution of time specified by the time stamp, because a large amount of information involves a great number of bits. In the illustrated example of FIG. 25, for example, there are employed 32-bit time stamps.
In the above-mentioned communication technique of the type which transmits data with time stamps, time stamp information has to be sent every predetermined period in addition to the data, and it is desirable that a proportion of the time stamp information to the transmitted data be as small as possible.
However, the number of bits allocated to each time stamp has to be increased in order to guarantee the one-meaning requirement of the time stamp and raise the resolution of the time represented by the time stamp, which would inevitably lead to reduced data transfer efficiency.
Further, where data are accompanied by time stamp information indicating a particular time point to process the data, it is possible that the time stamp, at the time of arrival of the data at the receiving end, indicates an already lapsed time point due to processing delays in the network, intervening bridges and routers, etc. To avoid such an inconvenience, a sufficient number of time stamps have to be attached, taking into account possible future extension of the network and the like. However, attaching sufficient time stamps would cause significant delays in data reproduction but also would require provision of a separate buffer, at the receiving end, for temporarily storing a large quantity of data.
One possible way to reduce the necessary data quantity of the time stamps is to express them in relative values, which, however, would lose an original relative time-positional relationship between the individual data if jitters are present in the transmission paths.
As one example of the time stamp, there has been known the SMPTE time code which is a code defined by the xe2x80x9cSociety of Motion Picture and Television Engineersxe2x80x9d. According to the SMPTE time code scheme, 80-bit address data (comprising a time code represented by xx hours, xx minutes, xx seconds and xxth frame and a user bit) is attached to every frame of video data so that the address is used for editing and synchronized operation between a plurality of constituent elements or devices.
Also, with recent digitalization of various multimedia and AV (Audio-Visual) equipment, it has been proposed to interconnect a plurality of multimedia-related devices via a communication network, such as the IEEE1394 network, to thereby build a multimedia system.
In order to transmit data, such as digital sound data or video data or performance data, requiring precise timing reference, it is necessary to guarantee accurate reproducibility of these data on the time axis.
For example, in a multimedia system built by interconnecting, via network, a plurality of nodes having respective specific functions, to perform planned processes on data generated by some of the nodes, the generated data will be sent via a plurality of transmission paths or routes to other nodes in such a way that the data pass through the individual nodes performing the corresponding processes. Accordingly, the individual data will arrive at the output node with different time delays due to different processing time periods in the processing nodes located on the respective paths, so that it is no longer possible to guarantee accurate reproducibility of the data on the time axis.
Such an inconvenience is discussed more fully with reference to FIG. 26. The illustrated example of FIG. 26 assumes that four nodes, i.e., node 1 (Ni) to node 4 (N4) are interconnected via the IEEE1394 network. Although the nodes can function as various devices constituting the multimedia system as noted earlier, it is assumed here that these nodes together constitute a single tone generating apparatus, where node 1 is a tone source device, node 2 an effector for imparting a vibrato to a tone to be generated, node 3 an effector for imparting an panning effect to a tone to be generated, and node 4 a mixer for mixing together tone signals.
In the tone generating apparatus arranged as above, node 1, functioning as the tone source device, outputs a plurality of tones every predetermined timing (i.e., every frame). Let""s also assume that the thus-generated tones are generally classified into four different types: the first-type tone that is to be output directly; the second-type tone that is to be imparted a vibrato; the third-type tone that is to be panned; and the fourth-type tone that is to be imparted a vibrato with subsequent panning. In such a case, the tone source device implemented by node 1 outputs each of the four types of tone data to a corresponding one of four channels of the network.
To each of the other nodes, such as node 2, node 3 and node 4, is allocated a different network channel via which the node receives the data of the individual channels. Thus, each of these nodes actually reads in only the data of the channel allocated thereto, from among the data of the individual channels received via the network, and performs the predetermined process, such as the vibrato imparting, panning or mixing process, on the read-in data. When necessary, the node sends back the thus-processed data to the network.
FIG. 27 shows exemplary arrangement of the channels on the network. As shown, packets corresponding to the channels are arranged, on the time axis, with a gap interposed between the packets. Each of the packets comprises an arbitration segment P1, and a data packet segment P3 having data preface and data end segments P2 and P4 attached to opposite ends thereof.
Note that each of the packets may be either an isochronously-transferred packet or a normal packet.
In the tone generating apparatus having its constituent elements thus interconnected via the network, each of the generated tone data which is not to be subjected to the effect imparting process is sent from the tone source device implemented by node 1, via, for example, a first channel ch1, directly to the mixer implemented by node 4 (see arrow A14). Each of the generated tone data which is to be subjected to the reverberation process is sent from the tone source node N1, via, for example, a second channel, to node 2 functioning as a reverberation processing section (see arrow A12). Further, each of the generated tone data which is to be subjected to the panning process is sent from the tone source node N1, via, for example, a third channel, to node 3 executing the panning process (see arrow A13).
The reverberation processing node or node 2 determines that tone data of the second network channel ch2 (A12) is to be received by that node N2, and thus reads in the tone data to perform a predetermined reverberation process on the read-in tone data. Each of the tone data having undergone the reverberation process which is to be further subjected to the panning process is sent via the fourth channel ch4 to the panning processing node N3 (see arrow A123). On the other hand, each of the tone data having undergone the reverberation process which is to not be subjected to the panning process is sent by way of, for example, a fifth channel ch5 to the mixer node N4 (see arrow A124).
The panning processing node N3 or node 3 determines that the tone data sent from node 1 via the third channel ch3 (A13) and the tone data sent from node 2 via the fourth channel ch4 (A123) are to be received by the node N3, and thus receives these data to perform a predetermined panning process on the data. After that, the data received via the fourth channel ch4 and subjected to the panning process is sent from the panning processing node to node 4 via a sixth channel ch6 (A1234), while the data received via the third channel ch3 and subjected to the panning process is sent from the panning processing node to node 4 via a seventh channel ch7 (A134).
With the above-noted arrangements, the tone data generated by the tone source node N1 or node 1 are sent to the mixer node N4 via four routes as follows: (1) the first route for the tone data sent directly via the first channel (A14); (2) the second route for the tone data of the fifth channel ch5 having undergone the reverberation process in node 2 (A124); (3) the third route for the tone data of the sixth channel ch6 having undergone the reverberation process in node 2 and then the panning process in node 3 (A1234); and the fourth route for the tone data of the seventh channel ch7 having undergone the panning process in node 3 (A134).
In the foregoing manner, each of the tone data generated by the tone source node N1 or node 1 is supplied to the mixer node N4 by way of one of the four different routes; however, even the tone data generated at same timing from the tone source node N1 would reach the mixer node N4 or node 4 at different time point s depending on the routes they took, because node 2 and node 3 require some time for execution of the respective processes. If the time necessary for the process in node 2 is represented by a2 and the time necessary for the process in node 3 is represented by a3, the tone data passed through the second, third and fourth routes would reach node 4 with time delays corresponding to the delay times a2, a2+a3 and a3, respectively. As a consequence, there would occur time differences in the data mixing by the mixer node N4.
Although it has been simply stated above that different arrival times of the tone data passed through the different routes are due to processing time delays in the individual nodes, the actual time for each of the nodes to send the data out to the network may, in fact, vary depending on a traffic condition on the network. Besides, the time differences of the tone data arriving at node 4 tend to vary in many cases, because the processing time of each of the nodes is not necessarily constant.
It is therefore a first object of the present invention to provide a data communication system which is suitably applicable to a case where a plurality of data, such as digital audio data, arranged in a time series of a predetermined period are transmitted from a transmitting end via a communication network in such a format that allows a receiving end to accurately reproduce an original time-positional relationship between the transmitted data, and which, while allowing a user to enjoy the benefits of an asynchronous packet, can effectively reduce a total quantity of transmitted data per packet by expressing, in minimized data quantity, time information to be contained in and transmitted with the packet.
The present invention also seeks to to provide a data communication system which can minimize a time delay that would occur between a transmitting end and a receiving-end.
The present invention also seeks to provide a data communication system which, in a case where time information is expressed in reduced data quantity, can substantially simplify arithmetic operations carried out at a receiving end for reproducing the time information.
It is a second object of the present invention to provide a technique which is suitably applicable to a data communication system designed to transmit data with a time stamp attached thereto and which permits accurate reproduction of the transmitted data on the time axis and also can effectively enhances data transmission efficiency by reducing the total number of bits in the time stamp.
It is a third object of the present invention to provide a data communication system which, in a case where data is transmitted via a bridge and router, can reduce the number of bits in a time stamp to be sent with the data, can avoid a time delay in reproduction of the transmitted data, and also can avoid a loss of relative time-positional relationship between the individual data.
It is a fourth object of the present invention to overcome the above-discussed problems and thereby allow data, passed through a plurality of routes on a communication network, to arrive at a predetermined node in synchronism with each other.
In order to accomplish the above-mentioned objects, a first aspect of the present invention provides a data communication method which comprises the steps of:
(a) at a transmitting end,
supplying a plurality of data arranged in a time series of a predetermined period;
specifying one data from among every predetermined number, not smaller than two, of the data supplied by the step of supplying and attaching to the specified data time information indicative of a time position of the specified data; and
transmitting the predetermined number of the data supplied by the step of supplying and the time information attached to any one of the predetermined number of the data, together as a packet, to a communication network, and
(b) at a receiving end,
receiving the packet via the communication network;
temporarily storing the data contained in the received packet; and
sequentially reading out the temporarily stored data and controlling sequential readout of the temporarily stored data on the basis of the time information contained in the received packet, to thereby allow the read-out data to be reproduced with a period corresponding to said predetermined period.
According to the first aspect of the present invention, one particular data is specified from among every predetermined number, not smaller than two, of the supplied data (or unit data group) so that time information is attached only to the specified data, as compared to the conventionally-known methods where such time information is attached to each individual data to be transmitted. Also, a packet is formed of the predetermined number of the supplied data and the time information attached to any one of the data, and the thus-formed packet is transmitted from the transmitting end via the communication network to the receiving end. The receiving end receives the transmitted packet via the communication network and temporarily stores the data of the received packet. Then, the receiving end sequentially reads out the stored data and allows the read-out data to be reproduced in a cycle corresponding to the predetermined period by controlling the sequential readout of the stored data on the basis of the time information contained in the received packet. As a result, the data communication method of the present invention, while allowing users to enjoy the benefits of an asynchronous packet communication, can effectively reduce a total quantity of transmitted data per packet by expressing time information for the packet in minimized data quantity.
Further, according to a second aspect of the present Invention, there is provided a data communication method which comprises the steps of:
(a) at a transmitting end,
supplying a plurality of data arranged in a time series of first period;
specifying one data from among every predetermined number, not smaller than two, of the data supplied d by the step of supplying and attaching to the specified data time information Indicative of a time position of the specified data; and
every predetermined second period longer than the first period, transmitting the supplied data within a given cycle of the second period and the time information attached to any one of the predetermined number of the data, together as a packet, to a communication network, and
(b) at a receiving end,
receiving the packet via the communication network;
temporarily storing the data contained in the received packet; and
sequentially reading out the temporarily stored data and controlling sequential readout of the temporarily stored data on the basis of the time information contained in the received packet, to thereby allow the read-out data to be reproduced with a period corresponding to said first period.
According to the second aspect of the present invention, similarly to the above-discussed first aspect, one particular data is specified from among every predetermined number, not smaller than two, of the supplied data (or unit data group) so that time information is attached only to the specified data, in stead of such time information being attached to each individual data to be transmitted. Also, every predetermined second period longer than the first period, a packet is formed of the predetermined number of the supplied data and the time information attached to any one of the data, and the thus-formed packet is transmitted from the transmitting end via the communication network to the receiving end. The receiving end receives the transmitted packet via the communication network to temporarily store the data of the received packet. Then, the receiving end sequentially reads out the stored data and allows the read-out data to be reproduced in a cycle corresponding to the first or original period by controlling the sequential readout of the stored data on the basis of the time information contained in the received packet. Thus, similarly to the above-mentioned, the data communication method of the invention, while allowing users to enjoy the benefits of an asynchronous packet communication, can effectively reduce a total quantity of transmitted data per packet by expressing time information for the packet in minimized data quantity.
In addition, by executing the packet transmission every predetermined second period, the second aspect can minimize time delays that would occur in data transmission between a transmitting end and a receiving end, without having to wait until after a predetermined number of data have been accumulated.
The term xe2x80x9casynchronous packetxe2x80x9d as used herein refers to a packet whose a transmission period is set independently of a sampling period of original sample data to be transmitted; however, the present invention affords a properly synchronized communication because the transmission and reception of the packet are conducted with a same fixed period.
In order to accomplish the second object, the present invention provides a data transmitter device which sends data to be transmitted, having attached thereto a time stamp represented as a time difference from a first timing signal having a predetermined period, to a communication network on the basis of a second timing signal generated in accordance with the first timing signal. This data transmitter device includes a FIFO buffer and writes the data to be transmitted into the FIFO buffer on the basis of the first timing signal. The data transmitter device then retrieves the data to be transmitted from the FIFO buffer on the basis of the second timing signal and sends the retrieved data to the communication network.
The present invention also provides a data receiver device which receives data having attached thereto a time stamp represented as a time difference from a first timing signal having a predetermined period and transmitted to a communication network on the basis of a second timing signal generated in accordance with the first timing signal. This data receiver device includes a FIFO buffer and writes the data received via the communication network into the FIFO buffer on the basis of the second timing signal. The data receiver device then retrieves the received data from the FIFO buffer on the basis of the first timing signal and reproduces the retrieved data on a time axis on the basis of the time stamp attached thereto.
Further, the present invention provides a data communication system which comprises a data transmitter device and a data receiver device and where data communication on a communication network is controlled on the basis of a second timing signal generated in accordance with a first timing signal having a predetermined period. In this data communication system, the data transmitter device attaches a time stamp, represented as a time difference from the first timing signal, to data to be transmitted, and writes the data with the time stamp into a first FIFO buffer on the basis of the first timing signal. The data transmitter device then retrieves the data to be transmitted from the first FIFO buffer on the basis of the second timing signal and sends the retrieved data to the communication network. The data receiver device receives and writes the data, sent by the data transmitter device to the communication network, into a second FIFO buffer on the basis of the second timing signal, then retrieves the data from the second FIFO buffer on the basis of the first timing signal and reproduces the retrieved data on a time axis on the basis of the time stamp.
In order to accomplish the third object, the present invention provides a data transfer system for use in such a communication scheme where there are performed both isochronous communication that, using nominally-set cycles and bands reserved in corresponding relation to individual ones of the cycles, transmits data following transmission of a cycle start packet and asynchronous packet communication that transmits data using a remaining period of the cycle, and where a sum of a necessary period for the isochronous communication and a necessary period for the asynchronous packet communication being allowed to exceed the period of the cycle. Upon reception of the data having attached thereto a reproducing time stamp indicative of a specific data-reproducing time point, a delay time of the received data is detected on the basis of the cycle start packet which the received data belong to. A time value, obtained by adding one period time length of the cycle and the detected delay time to a time value of a start point of the cycle which the cycle start packet belongs to, is attached to the received data as a transferring time stamp. When time represented by the transferring time stamp has arrived or lapsed, necessary preparations are made for transferring the received data.
In the above-mentioned data transfer system, a bridge inserted in a communication network receives the data from a given segment. When time represented by the transferring time stamp has arrived or lapsed, the bridge transfers the received data to a wait buffer, and when a predetermined cycle start packet is sent out to another segment, the bridge transfers the received data from the wait buffer to a transmission buffer to transmit the data to the other segment.
Further, in the above-mentioned data transfer system, the reproducing time stamp is indicative of a relative time position within the cycle. The reproducing time stamp is replaced with a new time stamp that is obtained by adding one period time length of the cycle to the time value of the start point of the cycle which the cycle start packet, preceding the received data, belongs to. An operation for reproducing the received data is performed when time represented by the new time stamp has arrived or lapsed.
Because a time value, obtained by adding one period time length of the cycle and the delay time of the received data behind the corresponding cycle start packet to the time value of the start point of the cycle which the cycle start packet belongs to, is attached to the received data as a transferring time stamp, the data transfer can be executed with increased efficiency, and it is possible to effectively avoid loosing a relative time-positional relationship between the individual data.
Further, because the reproducing time stamp is replaced with a new time stamp that is obtained by adding one period time length of the cycle to the time value of the start point of the cycle which the cycle start packet, preceding the received data, belongs to, the data reproduction can be executed with increased efficiency while effectively avoiding a loss of the relative time-positional relationship between the individual data, even when the reproducing time stamp is of a small bit size or length, say, below 32 bits.
In order to accomplish the fourth object, the present invention provides a method of synchronizing a plurality of data transmitted to a communication network having a plurality of nodes connected thereto. According to this method, one of the nodes, designated to transmit a plurality of data to be synchronized, attaches a predetermined data mark to the data and sends the data with the data mark to the communication network. Another of the nodes, having received the data via the communication network, synchronizes the received data by reference to the data mark attached thereto.
Further, the present invention provides a device for synchronizing a plurality of data transmitted to a communication network having a plurality of nodes connected thereto. On the basis of a data mark contained in the data received via the communication network, the device synchronizes a group of the data that has the same data mark attached thereto. At least one of the nodes connected to the communication network has a function of the device for synchronizing a plurality of data transmitted to the communication network.